"background-repeat", &repeat,
NULL);
- /* Fill background color first */
- cairo_fill_preserve (cr);
-
if (cairo_pattern_get_surface (bg->pattern, &surface) != CAIRO_STATUS_SUCCESS)
surface = NULL;
scale_height = bg->image_rect.height;
}
- cairo_translate (cr, bg->image_rect.x, bg->image_rect.y);
- cairo_scale (cr, scale_width, scale_height);
- cairo_set_source (cr, bg->pattern);
- cairo_scale (cr, 1.0 / scale_width, 1.0 / scale_height);
- cairo_translate (cr, -bg->image_rect.x, -bg->image_rect.y);
+ if (scale_width && scale_height)
+ {
+ /* Fill background color first */
+ cairo_fill_preserve (cr);
+
+ cairo_translate (cr, bg->image_rect.x, bg->image_rect.y);
+ cairo_scale (cr, scale_width, scale_height);
+ cairo_set_source (cr, bg->pattern);
+ cairo_scale (cr, 1.0 / scale_width, 1.0 / scale_height);
+ cairo_translate (cr, -bg->image_rect.x, -bg->image_rect.y);
- g_free (repeat);
+ g_free (repeat);
- cairo_pattern_destroy (bg->pattern);
- bg->pattern = NULL;
+ cairo_pattern_destroy (bg->pattern);
+ bg->pattern = NULL;
+ }
}
cairo_fill (cr);